package com.ruoyi.celoan.service.impl;

import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.celoan.entity.DalianDataReportKeyEntity;
import com.ruoyi.celoan.entity.ExTradeEffectCreditserviceagenciesDetailEntity;
import com.ruoyi.celoan.mapper.ExTradeEffectCreditserviceagenciesDetailMapper;
import com.ruoyi.celoan.service.ExTradeEffectCreditserviceagenciesDetailService;
import com.ruoyi.celoan.service.IEcDalianDataReportLogsService;
import com.ruoyi.celoan.util.DataReportUtil;
import com.ruoyi.celoan.util.ListUtils;
import com.xmsme.base.sdk.BaseApiClient;
import com.xmsme.base.sdk.response.StatisticsPostResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class ExTradeEffectCreditserviceagenciesDetailServiceImpl
        extends ServiceImpl<ExTradeEffectCreditserviceagenciesDetailMapper, ExTradeEffectCreditserviceagenciesDetailEntity>
        implements ExTradeEffectCreditserviceagenciesDetailService {
    private static final Logger log = LoggerFactory.getLogger(ExTradeEffectCreditserviceagenciesDetailServiceImpl.class);
    @Autowired
    private IEcDalianDataReportLogsService dalianDataReportLogsService;
    private static String url = "";

    public void getDataReport(String interfaceName, BaseApiClient client, DalianDataReportKeyEntity entity, String areaCode) {
        String startDate = LocalDateTime.now().plusDays(-2L).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        QueryWrapper<ExTradeEffectCreditserviceagenciesDetailEntity> queryWrapper = new QueryWrapper();
        queryWrapper.eq("area_code", areaCode);
        queryWrapper.eq("isflag", Integer.valueOf(0));
        log.info("开始时间：" + startDate);
        List<ExTradeEffectCreditserviceagenciesDetailEntity> list = ((ExTradeEffectCreditserviceagenciesDetailMapper) this.baseMapper).selectList((Wrapper) queryWrapper);
        if (CollUtil.isNotEmpty(list)) {
            List<List<ExTradeEffectCreditserviceagenciesDetailEntity>> retList = ListUtils.split(list, 100);
            this.dalianDataReportLogsService.addLogs(interfaceName + "接口上报数据开始", list.size() + "条");
            String date = LocalDate.now().toString();
            List<Long> updateList = new ArrayList<>();
            for (int i = 0; i < retList.size(); i++) {
                try {
                    List<ExTradeEffectCreditserviceagenciesDetailEntity> reportList = retList.get(i);
                    List<Long> addlist = (List<Long>) reportList.stream().map(ret -> ret.getId()).collect(Collectors.toList());
                    this.dalianDataReportLogsService.addLogs(interfaceName + "明细日期:" + date + "上报id为：", JSONObject.toJSONString(addlist));
                    StatisticsPostResponse response = DataReportUtil.creditServiceAgencies(reportList, client);
                    this.dalianDataReportLogsService.addLogs(interfaceName + "明细返回结果:", JSONObject.toJSONString(response));
                    if (response.isSuccess()) {
                        updateList.addAll(addlist);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    log.info("数据上报异常:" + e.getMessage());
                }
            }
            UpdateWrapper<ExTradeEffectCreditserviceagenciesDetailEntity> updateWrapper = new UpdateWrapper();
            updateWrapper.in("id", updateList);
            updateWrapper.set("isflag", Integer.valueOf(1));
            update((Wrapper) updateWrapper);
            this.dalianDataReportLogsService.addLogs(interfaceName + "上报数据上报成功条数:", updateList.size() + "条");
        }
    }
}


/* Location:              D:\tuodayun\workspace\work\celoan-third-data-report-service-2.0.0-SNAPSHOT.jar!\BOOT-INF\classes\com\celoan\service\impl\ExTradeEffectCreditserviceagenciesDetailServiceImpl.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */
